// import {messages} from "share/common";
// import React from 'react'
// import { connect } from 'react-redux'
//
//
// import { Form, Switch, Icon, Input, Select, Button, Row, Col, message, Spin, Radio, Tooltip } from 'antd'
// const FormItem = Form.Item;
// const Option = Select.Option;
//
// const RadioButton = Radio.Button;
// const RadioGroup = Radio.Group;
//
// import httpFetch from 'share/httpFetch'
// import config from 'config'
// import Chooser from 'components/chooser'
//
// import SelectDepartment from './select-department'
// import SelectEmployeeGroup from 'components/template/select-employee-group'
// import SelectCashTransaction from './select-cash-transaction'
//
// class NewPrePaymentType extends React.Component {
//   constructor(props) {
//     super(props);
//     this.state = {
//       loading: false,
//       options: [],
//       nowType: {},
//       setOfBooks: [],
//       showSelectEmployeeGroup: false,
//       allType: "",
//       allClass: true,
//       needApply: true,
//       transactionClassList: [],
//       showSelectCashTransaction: false,
//       applicationFormBasis: "",
//       showSelectDepartment: false,
//       employeeList: [],
//       selectEmployeeText: "",
//       applyEmployee: "BASIS_01",
//       requisitionList: []
//     };
//   }
//
//   componentWillMount() {
//     httpFetch.get(`${config.baseUrl}/api/setOfBooks/by/tenant?roleType=TENANT`).then(res => {
//       this.setState({ setOfBooks: res.data })
//     });
//     this.getSystemValueList(2105).then(res => {
//       this.setState({ options: res.data.values });
//     });
//   }
//
//   componentWillReceiveProps(nextProps) {
//
//     if (nextProps.params.prePaymentType.id && nextProps.params.prePaymentType.id != this.state.nowType.id) {
//       httpFetch.get(`${config.prePaymentUrl}/api/cash/pay/requisition/types/${nextProps.params.prePaymentType.id}`).then(res => {
//
//         let temp = res.data.cashPayRequisitionType;
//
//         this.setState({
//           nowType: temp,
//           allType: temp.allType,
//           allClass: temp.allClass,
//           needApply: temp.needApply,
//           applyEmployee: temp.applyEmployee,
//           applicationFormBasis: temp.applicationFormBasis,
//           transactionClassList: temp.transactionClassList,
//           employeeList: temp.departmentOrUserGroupIdList
//         })
//       })
//     }
//   }
//
//   onFormFocus = () => {
//     if (!(this.state.requisitionList && this.state.requisitionList.length)) {
//       this.getRequisitionList();
//     }
//   }
//
//   getRequisitionList = () => {
//     httpFetch.get(`http://116.228.77.183:25299/api/custom/forms/company/my/available/all?formType=107`).then(res => {
//       this.setState({ requisitionList: res.data });
//     })
//   }
//
//   onCancel = () => {
//     this.props.close();
//     this.props.form.resetFields();
//   };
//
//   handleSave = (e) => {
//     e.preventDefault();
//
//     this.props.form.validateFieldsAndScroll((err, values) => {
//
//       if (!err) {
//
//         this.setState({ loading: true });
//
//         values = {
//           ...this.state.nowType,
//           ...values
//         };
//
//         values.allType = this.state.allType;
//         values.allClass = this.state.allClass;
//         values.applyEmployee = this.state.applyEmployee;
//         values.applicationFormBasis = this.state.applicationFormBasis;
//         values.needApply = this.state.needApply;
//
//         let form = JSON.parse(values.form);
//         values.formOid = form.formOID;
//         values.formName = form.formName;
//         values.formType = form.formType;
//
//         delete values.form;
//
//         let params = {
//           cashPayRequisitionType: values,
//           requisitionTypeList: [],
//           transactionClassList: this.state.allClass ? [] : this.state.transactionClassList.map(item => item.id),
//           departmentOrUserGroupIdList: this.state.employeeList.map(item => item.value)
//         };
//
//
//         httpFetch[this.state.nowType.id ? "put" : "post"](`${config.prePaymentUrl}/api/cash/pay/requisition/types`, params).then((res) => {
//           this.setState({ loading: false });
//           message.success(messages('common.save.success', { name: values.typeName }));  //保存成功
//           this.props.close(true);
//
//           this.props.form.resetFields();
//         }).catch((e) => {
//           if (e.response) {
//             message.error(`保存失败, ${e.response.data.message}`);
//           }
//           this.setState({ loading: false });
//         })
//       }
//     });
//   };
//
//   handleListOk = (values) => {
//     let text = '';
//     if (this.state.applyEmployee == "BASIS_02") {
//       text = `已选择${values.checkedKeys.length}个部门`;
//     }
//     else if (this.state.applyEmployee == "BASIS_03") {
//       text = `已选择${values.checkedKeys.length}个人员组`;
//     }
//     this.setState({ showSelectEmployeeGroup: false, showSelectDepartment: false, employeeList: values.checkedKeys, selectEmployeeText: text });
//   }
//
//   onSelectCashTransactionOk = (values) => {
//     this.setState({ showSelectCashTransaction: false, transactionClassList: values.result });
//   }
//
//   handleListCancel = () => {
//     this.setState({ showSelectEmployeeGroup: false, showSelectDepartment: false });
//   }
//
//   showSelectEmployeeGroup = () => {
//     this.refs.selectEmployeeGroup.blur();
//     if (this.state.applyEmployee == "BASIS_03") {
//       this.setState({ showSelectEmployeeGroup: true });
//     }
//     else if (this.state.applyEmployee == "BASIS_02") {
//       this.setState({ showSelectDepartment: true });
//     }
//   }
//
//   showSelectCashTransaction = () => {
//     this.refs.selectCashTransaction.blur();
//     this.setState({ showSelectCashTransaction: true });
//   }
//
//   onAllTypeChange = (e) => {
//     this.setState({ allType: e.target.value });
//   }
//
//   onAllClassChange = (e) => {
//     this.setState({ allClass: e.target.value });
//   }
//
//   onApplyEmployee = (e) => {
//     this.setState({ applyEmployee: e.target.value });
//   }
//
//   onApplicationFormBasisChange = (e) => {
//     this.setState({ applicationFormBasis: e.target.value });
//   }
//
//   onAllClassListChange = (values) => {
//     this.setState({ transactionClassList: values });
//   }
//
//   onNeedApply = (e) => {
//     let allType = this.state.allType;
//     allType = e.target.value ? allType : "";
//
//     let applicationFormBasis = this.state.applicationFormBasis;
//     applicationFormBasis = e.target.value ? applicationFormBasis : "";
//     this.setState({ needApply: e.target.value, allType, applicationFormBasis });
//   }
//
//   render() {
//
//     const { getFieldDecorator } = this.props.form;
//     const {
//       nowType,
//       options,
//       setOfBooks,
//       showSelectEmployeeGroup,
//       allClass,
//       allType,
//       transactionClassList,
//       needApply,
//       showSelectCashTransaction,
//       applicationFormBasis,
//       applyEmployee,
//       showSelectDepartment,
//       selectEmployeeText,
//       requisitionList
//      } = this.state;
//     const formItemLayout = {
//       labelCol: { span: 8 },
//       wrapperCol: { span: 10, offset: 1 },
//     };
//     const radioStyle = {
//       display: 'block',
//       height: '30px',
//       lineHeight: '30px',
//     };
//     return (
//       <div>
//         <Form onSubmit={this.handleSave}>
//           <div className="common-item-title">基本信息</div>
//
//           <FormItem {...formItemLayout} label="类型">
//             <span>预付款单</span>
//           </FormItem>
//
//           <FormItem {...formItemLayout} label="账套">
//             {getFieldDecorator('setOfBookId', {
//               rules: [{
//                 required: true
//               }],
//               initialValue: !nowType.id ? this.props.company.setOfBooksId : nowType.setOfBookId
//             })(
//               <Select placeholder={messages('common.please.select')/* 请选择 */}
//                 notFoundContent={<Spin size="small" />} disabled={!!nowType.setOfBookId}>
//                 {setOfBooks.map((option) => {
//                   return <Option key={option.id}>{option.setOfBooksCode}</Option>
//                 })}
//               </Select>
//               )}
//           </FormItem>
//
//           <FormItem {...formItemLayout} label="表单代码">
//             {getFieldDecorator('typeCode', {
//               rules: [{
//                 required: true,
//                 message: messages('common.please.enter'),  //请输入
//               }],
//               initialValue: nowType.typeCode
//             })(
//               <Input placeholder={messages('common.please.enter')/* 请输入 */} />
//               )}
//           </FormItem>
//
//           <FormItem {...formItemLayout} label="表单名称">
//             {getFieldDecorator('typeName', {
//               rules: [{
//                 required: true,
//                 message: messages('common.please.enter'),  //请输入
//               }],
//               initialValue: nowType.typeName
//             })(
//               <Input placeholder={messages('common.please.enter')/* 请输入 */} />
//               )}
//           </FormItem>
//
//           <FormItem {...formItemLayout} label={(
//             <span>
//               关联表单类型&nbsp;
//               <Tooltip title="关联表单设计器中的单据类型，用来使用工作流">
//                 <Icon type="info-circle-o" />
//               </Tooltip>
//             </span>
//           )}>
//             {getFieldDecorator('form', {
//               rules: [{
//                 required: true
//               }],
//               initialValue: nowType.setOfBookId
//             })(
//               <Select onFocus={this.onFormFocus}>
//                 {
//                   requisitionList.map(item => {
//                     return <Option key={JSON.stringify(item)}>{item.formName}</Option>
//                   })
//                 }
//               </Select>
//               )}
//           </FormItem>
//
//           <FormItem {...formItemLayout} label={messages('common.column.status')/* 状态 */}>
//             {getFieldDecorator('isEnabled', {
//               initialValue: !nowType.id ? true : nowType.isEnabled,
//               valuePropName: 'checked'
//             })(
//               <Switch checkedChildren={<Icon type="check" />} unCheckedChildren={<Icon type="cross" />} />
//               )}&nbsp;&nbsp;&nbsp;&nbsp;{this.props.form.getFieldValue('isEnabled') ? messages('common.status.enable') : messages('common.status.disable')}
//           </FormItem>
//
//           <div className="common-item-title">付款方式</div>
//           <FormItem {...formItemLayout} label="付款方式">
//             {getFieldDecorator('paymentMethodCategory', {
//               rules: [{
//                 required: true,
//                 message: messages('common.please.select'),  //请选择
//               }],
//               initialValue: nowType.paymentMethodCategory
//             })(
//               <Select placeholder={messages('common.please.select')/* 请选择 */}>
//                 {options.map(option => {
//                   return <Option key={option.value}>{option.messageKey}</Option>
//                 })}
//               </Select>
//               )}
//           </FormItem>
//
//           <div className="common-item-title">关联申请设置</div>
//           <FormItem {...formItemLayout} label="是否关联申请">
//             <RadioGroup value={needApply} onChange={this.onNeedApply}>
//               <RadioButton value={true}>关联</RadioButton>
//               <RadioButton value={false}>不关联</RadioButton>
//             </RadioGroup>
//           </FormItem>
//
//           <FormItem {...formItemLayout} label="关联依据">
//             <RadioGroup value={applicationFormBasis} disabled={!needApply} onChange={this.onApplicationFormBasisChange}>
//               <Radio style={radioStyle} value="BASIS_01">预付款单头公司+头部门=申请单头公司+头部门</Radio>
//               <Radio style={radioStyle} value="BASIS_02">预付款单头申请人=申请单头申请人</Radio>
//             </RadioGroup>
//           </FormItem>
//
//           <FormItem {...formItemLayout} label="可关联申请类型">
//             <div>
//               <RadioGroup value={allType} disabled={!needApply} onChange={this.onAllTypeChange}>
//                 <Radio value="BASIS_01">全部类型</Radio>
//                 <Radio value="BASIS_02">部分类型</Radio>
//               </RadioGroup>
//
//               <Select disabled={!needApply || allType == 'BASIS_01'} value={allType ? "全部类型" : ""} placeholder={messages('common.please.select')/* 请选择 */}>
//               </Select>
//             </div>
//           </FormItem>
//
//           <div className="common-item-title">现金事务设置</div>
//           <FormItem {...formItemLayout} label="可用现金事务类型">
//             <div>
//               <RadioGroup value={allClass} onChange={this.onAllClassChange}>
//                 <Radio value={true}>全部类型</Radio>
//                 <Radio value={false}>部分类型</Radio>
//               </RadioGroup>
//
//               <Select ref="selectCashTransaction" onFocus={this.showSelectCashTransaction} onChange={this.onAllClassListChange} disabled={allClass} value={allClass ? "全部类型" : `已选择了${transactionClassList.length}个类型`} placeholder={messages('common.please.select')/* 请选择 */}>
//               </Select>
//             </div>
//           </FormItem>
//
//           <div className="common-item-title">权限设置</div>
//           <FormItem {...formItemLayout} label="适用人员">
//             <div>
//               <RadioGroup onChange={this.onApplyEmployee} value={applyEmployee}>
//                 <Radio value="BASIS_01">全部人员</Radio>
//                 <Radio value="BASIS_02">按部门添加</Radio>
//                 <Radio value="BASIS_03">按人员组添加</Radio>
//               </RadioGroup>
//               <Select disabled={applyEmployee == "BASIS_01"} value={applyEmployee == "BASIS_01" ? "全部人员" : selectEmployeeText} ref="selectEmployeeGroup" onFocus={this.showSelectEmployeeGroup} placeholder={messages('common.please.select')/* 请选择 */}>
//               </Select>
//             </div>
//           </FormItem>
//
//           <div className="slide-footer">
//             <Button type="primary" htmlType="submit" loading={this.state.loading}>{messages('common.save')/* 保存 */}</Button>
//             <Button onClick={this.onCancel}>{messages('common.cancel')/* 取消 */}</Button>
//           </div>
//         </Form>
//
//         <SelectEmployeeGroup visible={showSelectEmployeeGroup}
//           onCancel={this.handleListCancel}
//           onOk={this.handleListOk}
//           single={true}
//         />
//
//         <SelectDepartment visible={showSelectDepartment}
//           onCancel={this.handleListCancel}
//           onOk={this.handleListOk}
//           single={true}
//         />
//
//         <SelectCashTransaction visible={showSelectCashTransaction}
//           onCancel={this.handleListCancel}
//           onOk={this.onSelectCashTransactionOk}
//           single={true}
//         />
//
//       </div>
//     )
//   }
//
// }
//
// function mapStateToProps(state) {
//   return {
//     company: state.login.company
//   }
// }
// const WrappedNewPrePaymentType = Form.create()(NewPrePaymentType);
//
// export default connect(mapStateToProps)(WrappedNewPrePaymentType);
